/**
 * 对easyui的dialog方法的一些扩展
 */
$.extend($.fn.dialog.methods, {
	minimizeTo : function(jq, target) {// 最小化到某个位置
		return jq.each(function() {
			var me = $(this);
			var outer = me.parent();// 最外层窗口
			var outerWidth = outer.width();
			var outerHeihgt = outer.height();
			var outerLeft = outer.offset().left;
			var outerTop = outer.offset().top;

			var options = me.panel("options");
			if (options.minimized) {
				return true;
			}
			if (outer.attr("data-original-width")) {
				return true;
			}

			var shadow = outer.next(".window-shadow");// 窗口的阴影部分
			shadow.hide();
			outer.animate({
				left : $(target).offset().left + "px",
				top : $(target).offset().top + "px",
				width : $(target).width() + "px",
				height : $(target).height() + "px"
			}, "normal", "swing", function() {
				me.panel("minimize");
			});

			// 缓存原始位置信息
			outer.attr("data-original-width", outerWidth);
			outer.attr("data-original-height", outerHeihgt);
			outer.attr("data-original-left", outerLeft);
			outer.attr("data-original-top", outerTop);
		});
	},
	restoreToOriginal : function(jq) {// 恢复到原位置
		return jq.each(function() {
			var me = $(this);
			var outer = me.parent();
			var shadow = outer.next(".window-shadow");

			var outerWidth = outer.attr("data-original-width");
			var outerHeihgt = outer.attr("data-original-height");
			var outerLeft = outer.attr("data-original-left");
			var outerTop = outer.attr("data-original-top");

			var options = me.panel("options");
			if (options.maximized) {
				return true;
			}
			if (outerWidth == null || outerWidth == undefined) {
				return true;
			}

			outer.show();
			outer.animate({
				left : outerLeft + "px",
				top : outerTop + "px",
				width : outerWidth + "px",
				height : outerHeihgt + "px"
			}, "normal", "swing", function() {
				// easyui里居然没有将最小化的面板恢复的方法

				options.minimized = false;
				options.maximized = true;
				if (!options.collapsed) {
					shadow.show();
				}
				outer.css("height", "auto");
				// 删除缓存的位置信息
				outer.removeAttr("data-original-width");
				outer.removeAttr("data-original-height");
				outer.removeAttr("data-original-left");
				outer.removeAttr("data-original-top");
			});
		});
	},
	active : function(jq, callback) {// 激活一个面板,使之最前化
		return jq.each(function() {
			var state = $.data(this, "window");
			if (state.mask) {
				state.mask.css("z-index", $.fn.window.defaults.zIndex++);
			}
			if (state.shadow) {
				state.shadow.css("z-index", $.fn.window.defaults.zIndex++);
			}
			state.window.css("z-index", $.fn.window.defaults.zIndex++);

			if (callback) {
				callback.call();
			}
		});
	}
});